package com.atwisdom.star.service.production;

import com.alibaba.fastjson.JSONObject;
import com.atwisdom.star.common.vo.ActionData;
import com.atwisdom.star.common.vo.ResultInfo;
import com.atwisdom.star.exception.pojo.BusinessException;

public interface StorehouseService {

    /**
     * 新增仓库
     * @param data 仓库数据
     * @return 仓库数据
     * @throws BusinessException
     */
    ResultInfo<?> addStorehouse(JSONObject data) throws BusinessException;

    /**
     * 更新仓库
     * @param data 仓库数据
     * @return 仓库数据
     * @throws BusinessException
     */
    ResultInfo<?> updateStorehouse(JSONObject data) throws BusinessException;

    /**
     * 删除仓库
     * @param data 仓库数据
     * @return 仓库数据
     * @throws BusinessException
     */
    ResultInfo<?> deleteStorehouse(JSONObject data) throws BusinessException;

    /**
     * 分页查询，过滤掉被占用的数据
     * @param actionData 分页查询参数
     * @return 分页数据
     * @throws BusinessException
     */
    ResultInfo<?> queryTankNotLinkByPage(ActionData<JSONObject> actionData)  throws BusinessException;
    /**
     * 入库 库位编码，库位名称，storeJson,linkId为入库的桶的id
     * @param storeJson 入库数据
     * @return hier更新后的json
     * @throws BusinessException
     */
    ResultInfo<?> inputBound(JSONObject storeJson) throws BusinessException;
    /**
     * 出库 库位编码，库位名称,
     * @param storeJson 出库数据
     * @return hier更新后的json
     * @throws BusinessException
     */
    ResultInfo<?> outBound(JSONObject storeJson) throws BusinessException;

    /**
     * 根据hier数据查询下面的桶的数据
     * @param data
     * @return hier数据包含桶
     * @throws BusinessException
     */
    ResultInfo<?> queryTankById(JSONObject data) throws BusinessException;
}
